for e in ROUNDTRIPPING_CONFIG_ENTRIES:
result[e[0]] = get_cfg(e[0], e[1])
- result['cpu'] = get_cfg('cpu', int)
- result['cpus'] = get_cfg('cpus', str)
- result['image'] = get_cfg('image')
+ result['cpu'] = get_cfg('cpu', int)
+ result['cpus'] = get_cfg('cpus', str)
+ result['image'] = get_cfg('image')
try:
if result['image']:
- result['vcpus'] = int(sxp.child_value(result['image'],
- 'vcpus', 1))
- else:
- result['vcpus'] = 1
+ v = sxp.child_value(result['image'], 'vcpus')
+ if v is not None and int(v) != result['vcpus']:
+ log.warn(('Image VCPUs setting overrides vcpus=%d elsewhere.'
+ ' Using %s VCPUs for VM %s.') %
+ (result['vcpus'], v, result['uuid']))
+ result['vcpus'] = int(v)
except TypeError, exn:
raise VmError(
'Invalid configuration setting: vcpus = %s: %s' %
config_image.append(['root', cmdline_root])
if vals.extra:
config_image.append(['args', vals.extra])
- if vals.vcpus:
- config_image.append(['vcpus', vals.vcpus])
+
+ if vals.builder == 'vmx':
+ configure_vmx(config_image, vals)
+
return config_image
def configure_disks(config_devs, vals):
config.append([n, v])
map(add_conf, ['name', 'memory', 'ssidref', 'maxmem', 'restart',
- 'on_poweroff', 'on_reboot', 'on_crash'])
+ 'on_poweroff', 'on_reboot', 'on_crash', 'vcpus'])
if vals.cpu is not None:
config.append(['cpu', vals.cpu])
config_image = run_bootloader(vals)
else:
config_image = configure_image(vals)
- configure_vmx(config_image, vals)
config.append(['image', config_image])
config_devs = []